Turning to FIG. 1, a CAN includes a differential bus having a CAN high differential bus line (CANH) and a CAN low differential bus line (CANL). These bus lines have two states: a “recessive” state, and a “dominant” state, which is determined by a voltage differential between the CANH and CANL. The CANH and the CANL are driven by a transmission driver circuit.
A “recessive” state is defined as a “logic high” and the voltage differential between CANH and CANL is equal to or less than 0.5 volts. The median voltage of CANH and CANL may be “weakly” biased to Vcc/2. A “dominant” state is a “logic low”, the voltage differential between CANH and CANL is greater than or equal to 0.9 volts.
In CAN arbitration, a plurality of CAN nodes can contend for a shared differential bus simultaneously. In CAN networks, a dominant value from a first CAN node (i.e. a value of “logic low” or “zero” as represented by a voltage differential greater than 0.9 volts) overwrites a recessive value from a second CAN node (i.e. a value of zero as represented by a voltage differential greater than 0.9 volts). The CAN network will therefore convey the dominant value across CAN network through its differential bus lines. For an additional discussion of CANs, please see International Standards Organization (ISO) standard ISO-11898.
Principles of CAN operation are further illustrated in FIG. 2. In FIG. 2, a first CAN node having a driver output 205, a second CAN node having a driver output 210, and a third CAN node having a driver output 215, are all transmitting simultaneously when contending for dominant arbitration. As is illustrated, a second CAN node driver output 210 wins the arbitration as it has the highest priority address, i.e., the most number of dominant bits (zeroes) in a row. A CAN bus signal 220, can then be illustrated as the voltage differential when measured across the CAN voltage differential bus, as any CAN node driving dominant overwrites a recessive on its shared CAN bus. In other words, the CAN bus physical design combines signals equivalent to a logical AND.
A receiver dominant (RXD) signal 225 of the various CAN nodes illustrates an ANDed signal as a result of signals that would be generated by each CAN node of FIG. 2. Generally, an RXD signal is derived by each CAN node from the CAN bus differential voltage for each node. Generally, an RXD dominant signal indicates whether a CAN node is measuring a dominant state across its CANH and CANL. The CAN node then compares the received state to the TXD (driven) state to determine arbitration across its CANH and CANL. This signal is received by all CAN nodes on the bus. Taking two times the total loop time into account the first CAN node to the last CAN node will indicate that a dominant bus signal has been driven by any CAN node in the network and measured by all CAN nodes in the network.
FIG. 3A illustrates a high-level illustration of an RXD receiver 300. Each prior art CAN node on a CAN network may include the RXD receiver 300. As illustrated, a differential comparator 310 compares a voltage differential between a CANH and a CANL. If the voltage differential is at or below a first value, such as 0.5 volts, a recessive RXD value is generated (a logical “high”; if the voltage differential is equal to or above a second value, such as 0.9 volts, a dominant RXD value is generated (a logical “low”). The thresholds are set internally to differential comparator 310. The Vcc/2 320 sets the common mode voltage of differential comparator 310.
FIG. 3B is a high-level illustration of a transmission dominant driver (TXD) 350. A TXD amplifier 360 receives a TXD signal and will therefore either turn on or off a first field effect transistor (FET) 363 and a second FET 366, thereby generating either: a) a dominant voltage differential between CANH and CANL (e.g., greater than or equal to 0.9 volts) or b) a recessive voltage differential between CANH and CANL (e.g., lesser than or equal to 0.5 volts.) An RXD signal is conveyed over an RXD pin which will follow TXD pin during data transmission. TXD is typically an output from the CAN controller to the driver.
However, there are certain problems associated with CANs. CAN bus topology does not always work in all environments, due to various physical constraints and the network can be blocked by “stuck dominant” faults. The physical constraints do not typically create the dominant faults, but the physical constraints make the network blocked when a fault occurs. These problems can include limited flexibility in topologies due to various transmission line principles of bus topology. Indeed, bus topology does not always suit the physical requirements for the network. For example, an airplane can have a central CAN node in the cockpit, with equal distance for CAN nodes to each wing but a different distance to the tail. This can create significant problems with reflections, etc. in CAN topologies. Moreover, there may be limited wiring available for a given physical infrastructure. Furthermore, it can be problematic to build a redundant physical topology, especially a ring network.
Indeed, “bus stuck dominant faults” (i.e., when a bus line of the CAN network stays stuck in “dominant”) can block an entire CAN system, since “dominant” overwrites “recessive” in CAN differential busses. Therefore, it can be, at best, problematic to have alternative or redundant topologies with robustness to branches of the network with a bus stuck dominant fault. Moreover, different branches of a CAN network can have different resistances, which can be problematic for noise and bus stuck dominant faults.
Indeed, U.S. Pat. No. 5,734,658 to Rall et al is generally directed towards using non-standard termination resistances at a center of a star and on each ray or stub line of a CAN network to allow for non-standard CAN bus line resistances. However, this topology is known to have severe issues with signal integrity due to the non-standard scheme and multi-stub topology.
Therefore, there is a need in the art to address at least some of the issues associated with CAN networks.